{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github"
      },
      "source": [
        "\u003ca href=\"https://colab.research.google.com/github/google-research/google-research/blob/master/jax_dft/examples/recover_potential_from_density_and_energy.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JndnmDMp66FL"
      },
      "source": [
        "##### Copyright 2020 Google LLC.\n",
        "\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "hMqWDc_m6rUC"
      },
      "outputs": [],
      "source": [
        "#@title Default title text\n",
        "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "# https://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "29bi9k9toyk3"
      },
      "source": [
        "# Setup\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "sKBGRy5foj-u",
        "outputId": "3c48d3d8-1be6-4a7f-8377-b39e0c263f03"
      },
      "outputs": [],
      "source": [
        "!pip install --upgrade jax jaxlib"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "S4pHvFYbo-Nn",
        "outputId": "8604ee80-73c5-4c07-f0a1-bfa89b2b056e"
      },
      "outputs": [],
      "source": [
        "# Install jax-dft\n",
        "!git clone https://github.com/google-research/google-research.git\n",
        "!pip install google-research/jax_dft"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "CM4dzPWRPbRs"
      },
      "outputs": [],
      "source": [
        "import jax\n",
        "from jax import config\n",
        "import jax.numpy as jnp\n",
        "from jax_dft import scf\n",
        "from jax_dft import utils\n",
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "\n",
        "# Set the default dtype as float64\n",
        "config.update('jax_enable_x64', True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "lNX0j7yORCSq"
      },
      "outputs": [],
      "source": [
        "# Set plot style\n",
        "import matplotlib as mpl\n",
        "\n",
        "COLORS = [\n",
        "    '#0072b2',\n",
        "    '#de8f05',\n",
        "    '#009e73',\n",
        "    '#cc79a7',\n",
        "    '#a24f00',\n",
        "    '#9467bd',\n",
        "    '#56b4e9',\n",
        "    '#bcbd22',\n",
        "    '#7f7f7f',\n",
        "]\n",
        "\n",
        "\n",
        "def set_matplotlib_style():\n",
        "  \"\"\"Sets the matplotlib style for the colab notebook.\"\"\"\n",
        "  mpl.rcParams['image.cmap'] = 'inferno'\n",
        "  # Set width and size for lines and markers.\n",
        "  mpl.rcParams['lines.linewidth'] = 2.5\n",
        "  mpl.rcParams['lines.markersize'] = 9\n",
        "  mpl.rcParams['lines.markeredgewidth'] = 0\n",
        "  # Set fontsize.\n",
        "  mpl.rcParams['font.size'] = 18\n",
        "  mpl.rcParams['axes.labelsize'] = 20\n",
        "  mpl.rcParams['axes.titlesize'] = 20\n",
        "  mpl.rcParams['axes.formatter.useoffset'] = False\n",
        "  mpl.rcParams['legend.fontsize'] = 14\n",
        "  mpl.rcParams['xtick.labelsize'] = 14\n",
        "  mpl.rcParams['ytick.labelsize'] = 14\n",
        "  # default plot colors recommended by @zan\n",
        "  # adapted from the seaborn colorblind colors.\n",
        "  # https://seaborn.pydata.org/tutorial/color_palettes.html\n",
        "  # Purposely avoids red both for colorblind reasons\n",
        "  # and because red often reads as more important/bad or more eye-catching than\n",
        "  # other colors.\n",
        "  # These colors have been vetted by an individual with red/green color\n",
        "  # confusion.\n",
        "  mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=COLORS)\n",
        "  mpl.rcParams['savefig.dpi'] = 120\n",
        "  mpl.rcParams['savefig.bbox'] = 'tight'\n",
        "\n",
        "set_matplotlib_style()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "2GtN_c3HTWkO"
      },
      "outputs": [],
      "source": [
        "def show_density_potential(\n",
        "    grids, density, potential, do_show=True, grey=False, axs=None):\n",
        "  if axs is None:\n",
        "    _, axs = plt.subplots(nrows=2)\n",
        "  axs[0].plot(grids, density, c='0.5' if grey else COLORS[0])\n",
        "  axs[1].plot(grids, potential, c='0.5' if grey else COLORS[1])\n",
        "  axs[0].set_ylabel(r'$n(x)$')\n",
        "  axs[1].set_ylabel(r'$v(x)$')\n",
        "  axs[1].set_xlabel(r'$x$')\n",
        "  if do_show:\n",
        "    plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "eWkrrnmTPT10"
      },
      "source": [
        "# Run"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "awPfItxNpHUX"
      },
      "source": [
        "## Define grids"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5oFfMDOOo_By",
        "outputId": "6b1ff905-433e-4826-898a-f65950afb103"
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n"
          ]
        }
      ],
      "source": [
        "grids = np.linspace(-5, 5, 201)\n",
        "dx = utils.get_dx(grids)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "2Oo4Y2duUVuM"
      },
      "source": [
        "## Quantum Harmonic Oscillator\n",
        "\n",
        "$v(x)=\\frac{1}{2}k x^2$, where $k=1$.\n",
        "\n",
        "The ground state energy is $0.5$ Hartree.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 309
        },
        "id": "pA8tD5tjPSwu",
        "outputId": "5a629073-d337-44bf-a985-2f2a8bb9a97a"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "total energy: 0.49999993499536804\n"
          ]
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 432x288 with 2 Axes\u003e"
            ]
          },
          "metadata": {
            "needs_background": "light",
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "qho_potential = 0.5 * grids ** 2\n",
        "\n",
        "qho_density, qho_energy, _ = (\n",
        "    scf.solve_noninteracting_system(\n",
        "        qho_potential,\n",
        "        num_electrons=1,\n",
        "        grids=grids))\n",
        "\n",
        "print(f'total energy: {qho_energy}')\n",
        "show_density_potential(grids, qho_density, qho_potential, grey=True)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yTBjjByvnaXl"
      },
      "source": [
        "## Perturbed Quantum Harmonic Oscillator\n",
        "\n",
        "Let's add a perturbation on the potential. We will see that the density is of course not the original density."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 309
        },
        "id": "akU9udTiPtcu",
        "outputId": "4dabadcc-8a6e-4c0b-c633-2bf43356fbbd"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "total energy: 0.6339977312405621\n"
          ]
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 432x288 with 2 Axes\u003e"
            ]
          },
          "metadata": {
            "needs_background": "light",
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "perturbed_potential = qho_potential + np.exp(-(grids - 0.5) ** 2 / 0.04)\n",
        "perturbed_density, perturbed_energy, _ = (\n",
        "    scf.solve_noninteracting_system(\n",
        "        perturbed_potential,\n",
        "        num_electrons=1,\n",
        "        grids=grids))\n",
        "\n",
        "print(f'total energy: {perturbed_energy}')\n",
        "_, axs = plt.subplots(nrows=2)\n",
        "show_density_potential(\n",
        "    grids, qho_density, qho_potential, grey=True, do_show=False, axs=axs)\n",
        "show_density_potential(\n",
        "    grids, perturbed_density, perturbed_potential, axs=axs)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dEKjxCnboTy0"
      },
      "source": [
        "## Adjust potential from loss\n",
        "\n",
        "$L=\\int (n - n_\\mathrm{QHO})^2 dx + (E - E_\\mathrm{QHO})^2$"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "Ozgzmi00ot6d"
      },
      "outputs": [],
      "source": [
        "# Note the use of `jnp` not `np` here.\n",
        "def density_loss(output, target):\n",
        "  return jnp.sum((output - target) ** 2) * dx\n",
        "\n",
        "def energy_loss(output, target):\n",
        "  return (output - target) ** 2"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "M5Ek6TsqpMpW",
        "outputId": "704b0a7f-8ca8-4e55-9d49-52aea2b35b69"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Current density loss 0.014992231403549008\n",
            "Current energy loss 0.01795540939856855\n",
            "Current total loss 0.03294764080211756\n"
          ]
        }
      ],
      "source": [
        "print(f'Current density loss {density_loss(perturbed_density, qho_density)}')\n",
        "print(f'Current energy loss {energy_loss(perturbed_energy, qho_energy)}')\n",
        "print(f'Current total loss {density_loss(perturbed_density, qho_density) + energy_loss(perturbed_energy, qho_energy)}')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "QPtYpayTpWph"
      },
      "outputs": [],
      "source": [
        "def loss_fn(potential):\n",
        "  density, energy, _ = scf.solve_noninteracting_system(\n",
        "      potential, num_electrons=1, grids=grids)\n",
        "  return density_loss(density, qho_density) + energy_loss(energy, qho_energy)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fWG3m_SAqUSf",
        "outputId": "4c286c64-0637-4ec4-f85f-1fd405ddc87c"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Loss with perturbed potential 0.03294764080211756\n",
            "Loss with QHO potential 0.0\n"
          ]
        }
      ],
      "source": [
        "print(f'Loss with perturbed potential {loss_fn(perturbed_potential)}')\n",
        "print(f'Loss with QHO potential {loss_fn(qho_potential)}')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LYCErWBIqmPo"
      },
      "source": [
        "You can get the gradient $\\frac{\\partial L_n}{\\partial v}$ via automatic differentiation from `jax.grad`"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "7sHpSRFvqYcV"
      },
      "outputs": [],
      "source": [
        "grad_fn = jax.jit(jax.grad(loss_fn))  # Compile with jit for fast grad."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 292
        },
        "id": "ohnn6_TxqgKz",
        "outputId": "5c1be256-915c-457f-ba4d-5a28065e2def"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 432x288 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "needs_background": "light",
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "plt.plot(grids, grad_fn(perturbed_potential), '--', c=COLORS[2])\n",
        "plt.xlabel(r'$x$')\n",
        "plt.ylabel(r'$\\frac{\\partial L_n}{\\partial v}$')\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "G9T-8kMtsiFb"
      },
      "source": [
        "Now we have the gradient. Let's update the potential from the graident of loss with respect to the potential.\n",
        "\n",
        "$$v\\leftarrow v - \\epsilon\\frac{\\partial L}{\\partial v}$$"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0DDSvg-JrCNX",
        "outputId": "bc9458c9-c252-455b-d200-ee01c95e8554"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "step 0, loss 0.03294764080211756\n",
            "step 1000, loss 1.2281985713232167e-06\n",
            "step 2000, loss 2.699056601052081e-07\n",
            "step 3000, loss 1.0985142405799207e-07\n",
            "step 4000, loss 5.551165719062641e-08\n",
            "step 5000, loss 3.074022313833837e-08\n"
          ]
        }
      ],
      "source": [
        "potential = perturbed_potential\n",
        "loss_history = []\n",
        "potential_history = []\n",
        "record_interval = 1000\n",
        "for i in range(5001):\n",
        "  if i % record_interval == 0:\n",
        "    loss_value = loss_fn(potential)\n",
        "    print(f'step {i}, loss {loss_value}')\n",
        "    loss_history.append(loss_value)\n",
        "    potential_history.append(potential)\n",
        "  potential -=  30 * grad_fn(potential)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pKJPvTtoui63"
      },
      "source": [
        "Visualize the learning curve"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "cz55Pof3wvCg"
      },
      "outputs": [],
      "source": [
        "history_size = len(loss_history)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 292
        },
        "id": "SWYrXbg9tRrh",
        "outputId": "3109fba6-7383-4819-9d25-688eece69b68"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 432x288 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "needs_background": "light",
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "plt.plot(np.arange(history_size) * record_interval, loss_history)\n",
        "plt.axhline(y=0, color='0.5', ls='--')\n",
        "plt.xlabel('step')\n",
        "plt.ylabel(r'$L$')\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "v2evzPl9vJjx"
      },
      "source": [
        "and how the potential and corresponding density change."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 290
        },
        "id": "GY_8BLFGuvmz",
        "outputId": "168a8ef5-0ace-406c-8e92-8d050e50078a"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 1080x288 with 12 Axes\u003e"
            ]
          },
          "metadata": {
            "needs_background": "light",
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "_, axs = plt.subplots(\n",
        "    nrows=2, ncols=history_size, figsize=(2.5 * history_size, 4),\n",
        "    sharex=True, sharey='row')\n",
        "for i, ax in enumerate(axs[0]):\n",
        "  ax.plot(grids, qho_density, c='0.5')\n",
        "  density, _, _ = scf.solve_noninteracting_system(\n",
        "      potential_history[i], num_electrons=1, grids=grids)\n",
        "  ax.plot(grids, density, '--', c=COLORS[0])\n",
        "  ax.set_title(rf'$L=${loss_fn(potential_history[i]):1.1e}')\n",
        "\n",
        "for i, ax in enumerate(axs[1]):\n",
        "  ax.plot(grids, qho_potential, c='0.5')\n",
        "  ax.plot(grids, potential_history[i], '--', c=COLORS[1])\n",
        "\n",
        "# Zoom in the potential.\n",
        "axs[1][0].set_xlim(-2, 2)\n",
        "axs[1][0].set_ylim(0.01, 3)\n",
        "axs[0][0].set_ylabel(r'$n(x)$')\n",
        "axs[1][0].set_ylabel(r'$v(x)$')\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "t7piXNkRAdoJ"
      },
      "source": [
        "Visualize the final result."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 584
        },
        "id": "FuGgB--t5kT9",
        "outputId": "71de18ad-246c-4a29-eeb1-ae8773864ebe"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "total energy: 0.4999996749447668\n"
          ]
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 432x288 with 2 Axes\u003e"
            ]
          },
          "metadata": {
            "needs_background": "light",
            "tags": []
          },
          "output_type": "display_data"
        },
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZwAAAETCAYAAAACp7A0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd3hUZdrH8e89kwZJSCEYepEuXYKKYEEEV9EVwa7YZS1bbOuru+6ufS27irtrd+2rIqLroqAIoiIqSugqvfeWRnpm7vePM8QQEyAhM2dmcn+ua64kp/4mkNx5znnO84iqYowxxgSbx+0AxhhjGgcrOMYYY0LCCo4xxpiQsIJjjDEmJKzgGGOMCYkYtwOEq4yMDO3YsaPbMYwxJqJkZ2fvUtUWNa2zglOLjh07Mm/ePLdjGGNMRBGR9bWts0tqxhhjQsJaOMZEiK05BXz2/XpW78ijbVoiJ/Zox5Gtmrsdy5hDZgXHmDD3w8Yd3DxxLp9u9VNReVFiD/LBBo5N9/HgWf0Y1vdIVzMacyjskpoxYeyf0+aR9cRXTN9KlWLjUIRv9sQw4pUl3PzqTPx+v0spjTk0VnCMCVN3TZzNb2dspVi9ABydUsFTp7VmzrX9eOWXHRmWqXhQfHiYsKiIc56YakXHhDWxwTtrlpWVpdZLzbjlvnfn8Oc5ewCIFx9/PbkVN5957M+2e/+75Vw56XtyfLEAjG7v4b3fjQppVmOqEpFsVc2qaZ21cIwJM1O+W849c3YBTrGZdGHPGosNwNmDuvPlb4aSEVMOwH83+Pnz21+GLKsxdWEFx5gwsmFnLuPe/h4fHjwor43pxllZ3Q+4z1HtjuCzG4eQ5KkA4MG5u5k2f1Uo4hpTJ1ZwjAkjl7zwGXl+5/LYzQOSOe/4ow5pv17tM/n36G6V93SuensxhSVlwYxqTJ2FVcERkRtEZK2IlIhItoiccIBtTxYRreHVo9p2Y0XkBxEpDXw8J/jvxJi6++e07/hyl9NBYGBqBY9cfFKd9j9/SC+u7B4PwLbyWK558dMGz2jM4QibgiMiFwBPAA8CA4CvgGki0v4gu/YCWlV5raxyzMHAROA/QP/Ax0kiUvMFcWNckrO3iD/N2ghAgvh48+oT8Hjq/uP55BWn0D7eadm8vbqMOcs2NGhOYw5H2BQc4BbgZVV9XlV/VNXfAFuB6w+y3w5V3Vbl5auy7iZglqo+EDjmA8BngeXGhI2bXv+CvEBPs9uOaU7X1hn1Ok58XCwvnN8PQfEjXPdWNtYT1YSLsCg4IhIHDASmV1s1HTj+ILvPE5GtIjJTRIZVWze4hmN+fAjHNCZklm7YzhsrSwFoH1/G3WOHHNbxRvTvwmmtAscuiOG5mQsPN6IxDSIsCg6QAXiB7dWWbwda1rLPvtbPWGAMsByYWe2+T8u6HFNExovIPBGZt3Pnzrq9A2Pq6eaJcytHEXjsrJ54vYf/Y/nMZSeQIE5j/76Za/H57IFQ475wKTh1pqrLVfUZVc1W1a9V9QbgI+D3h3HM51Q1S1WzWrSocToHYxrU3OUb+XSb83lWagVjBx9ar7SD6XBEGpd2bwrA5rJYJkz9rkGOa8zhCJeCswvwAZnVlmcC2+pwnLlA1ypfb2uAYxoTNLe9m40fAZRHxwxo0GM/dMEQEsV5NufROZspr/AdZA9jgissCo6qlgHZwIhqq0bg9FY7VP1xLrXt83UDHNOYoPh25Sbm7HJ+BIdm+Dm5V8cGPX7zZolc2bsZANvLY3nmk/kNenxj6iosCk7AY8AVInKNiPQUkSeA1sAzACLyqoi8um9jEblJREaLSFcR6SUifwVGA/+qcswngFNE5A4R6SEidwLDgAkhe1fG1OKP/52PIgA8eHbDtm72uWfs4Mp7ORPmbLDBPY2rwqbgqOpEnO7KdwELgaHAGaq6b7rS9oHXPnHAo8BiYHZg+1Gq+m6VY34FXAhcEdjuMuACVZ0b1DdjzEF8v2E7s7Y53ZUHpVVwwlEdgnKe9OSmjDkyAYA1xXG8O3dZUM5jzKGw0aJrYaNFm2A6/19TmbTWaXl8cHF3Rg3sFrRzrdm2h26PzsaHh6NTysn+85igncsYGy3amDCSs7eIKeuc0QC6J5YHtdgAHNkyneGtnB/1+XmxfPnD+oPsYUxwWMExJsQe+t93lAQmVbtxcLuQnPPeswcAztWMez6wB0GNO6zgGBNCPp+flxfvBiDdW851I44OyXmP7dqWrDSnw8Cs7bBm6+6QnNeYqqzgGBNCL322iB3lzphpl/RKJTbGG7Jz33GqM5C6Dw8PfmD3J03oWcExJoT+MXstAHH4+MMvB4X03Occ04228c7MoO+sKKS0rDyk5zfGCo4xITLnxw0sKXBaNyPbxtAyLTmk5/d4PFze3xmyKc8fyzOfLAjp+Y2xgmNMiDzy8eLKz+8a1d+VDLeNyqp8EPS5bze5ksE0XlZwjAmBnL1FTN/kjGvWJ7mcY7u1dSVHamITTm8fB8APe62LtAktKzjGhMCEafMru0Jfe2xoukLX5s4z+lV+/nCVVpcxwWYFx5gQeG3hDgCaeSq4drg7l9P2GdSlDX2aOa2tTzb72JVf6Goe03hYwTEmyD5euIq1JU5ngbM7NyEhLtblRHDDYGfstlL18tjUbJfTmMaizgVHREaIyCMi8o2IbBGRMhHJE5GVIjJJRK4XkTbBCGtMJHp8xo8ACMrtZwRnVOi6uvqUfqR6nW7Rry/eaaNIm5A4pIIjIk0DQ/yvxZlV8zbgGCAV2AFUAEfiTPf8JLBWRCaLyODgxDYmMuzMK2TWVqdX2IAUH73bV58P0B2xMV7GdEkCYGNpHNMWrHI5kWkMDlpwROQqYCXwIFAM3IMziVmqqjZV1baq2hyIAY4CrgImA6cDX4rIRBFpX/PRjYluj02dRxlOZ4FfDQ7OFAT1dfuoAXgC46tN+NSmLTDBdygtnBdwpm4+VlWPUtV7VXWmquZX3Ugdy1T1ZVW9CGiJM7/NUJz5aIxpVPx+P/9Z4oxZluYt58ph/Q6yR2h1b9OCrDSn9fX5NmVbToHLiUy0O5SCk6WqY1T1u7ocWFXzVfWfQGfg7XqlMyaCfbxwNRtLnQ4C53RJCum4aYfq+uM7AVCOh79Z5wETZActOKp6WBOhq2qJqlp73TQ6+y5TCcrvw6SzQHWXntiHjBin88AbS/dY5wETVPXppfZgMIIYE0125RfyWaCzwNGpPnq0beFyoprFxHg5t5szptvWslje+3aFy4lMNKvPczh3iMhTDZ7EmCjy+LTsys4C448Lr84C1d0+6mi8OC2bf3xmBccET30KzqvAdSLyhojE1LSBiAwRka8OL5oxkev1RbsASA3DzgLVdWrZnOOaOwVnzk5l0+78g+xhTP3UueCo6hXA48CFwPsikrBvnYh0FZF3gS+AYxsqpDGR5KMFK9kQ6CwwunNiWHYWqO7GEzoDzuRsj3xonQdMcNRraBtVvRW4C+dZm+ki0k1EngSWAqOBbGBkg6U0JoJMmPlTZ4HbTnd33LRDdcGQ3mTGlAHw1g85+HzWecA0vHqPpaaqDwK/wXnO5kfgOmANcJ6qHqOqMxsmojGRY1d+IbO2OZ0F+qf46BUmIwscjMfj4YKeKQDsLI9l4jfWsdQ0vHoVHHFcBtyybxGwDRiqqpMbKpwxkWbCtGzK9k1DcFxkDbBx26iBxAY6D/zrcxvqxjS8+nSLPgdYArwEtAIeAm7FGVlghogc0aAJjYkgry/+qbPA1WHeWaC6di3SGNLCKThzd8Pq7bkuJzLRpj4tnMlAD5zeat1U9Q+q+jgwDmcstTki0rHBEhoTIT5euIr1ldMQJBIXW2MnzrD225O6AuBHrPOAaXD1KTifAEer6pWqWjkpuqq+AZwDtMYZtLNXA2U0JiI8MfOnaQgipbNAdWcfexRt40oBmLQsnwrrPGAaUH26RZ+mqjXOS6uqU4HTgCTg88PMZkzE2FNQxKeBkQX6hdE0BHXl8Xi48Kg0AHJ8Mbw6+3uXE5lo0uAzfqrql8DJQHlDH9uYcPX4tGxKA50Fxh8bWZ0Fqrt1VBZxOMXz6S/XuJzGRJOgTDGtqgtxukvXiYjcICJrRaRERLJF5IQDbDtGRKaLyE4RKRCRuSLyy2rbXCEiWsMrobbjGlNXfr+fVxbuBCDFU87Vp0RWZ4HqWqancFKggZadIyzbstvdQCZqHMoEbE3qc2BVXV2XY4jIBcATOBO9DQC+AqYdYPK2k4BPgVGB7acC79VQpIpwetNVvlS1pG7vxpjavfft8sppCM7tlhSRnQWqu2lYNwAU4eEPF7icxkSLQ2nhrBWR34lIfF0PLiL9ROR9nCmpD+YW4GVVfV5Vf1TV3wBbgetr2lhVf6eqD6nqt6q6SlXvwRnhYPTPN9VtVV91fR/GHMhjny4HwIufP5yV5XKahnF6Vk86xjt/l727soCyCp/LiUw0OJSC8zHwGLBVRJ4WkWEHarGIyJEicr2IfA3MB/oBsw50AhGJAwYC06utmg4cfwgZ90kGcqotayIi60Vkk4h8ICLhOTGJiUgrNu/im93Oj9HQFnBky3SXEzUMEeGSPs0ByPfF8MKsJS4nMtHgUCZguxw4DpgHjAdmAHkiskhEPhKRN0XkPRH5QkS2AyuBJ4FOwB+B7oGOBAeSAXiB7dWWb8d5oPSgRORGoC3wWpXFy4GrgLOBi4ASnOeEutZyjPEiMk9E5u3cufNQTmsauQemzMOPAHDr8B4up2lYN58xiASpAODpOWtdTmOiwSFdbA5MLz0y8Iv6amA40B/oU23TncC7OA+HTlbVkPRUE5GxwKPABaq6vkrur4Gvq2z3FbAQZwy431Y/jqo+BzwHkJWVpUGObSJccWk5764uBmLomFDGWYO6ux2pQTVPSWZE6ximbIalBTF8u3ITx3Rt63YsE8Hq1EtNVVeq6h2qOghIAbrjXPIaALRR1UxVPU9V36pjsdkF+IDqDy9k4ozRVisRORenVXOZqk45SH4fTkutxhaOMXXxxEfz2Ot3/ma7euAhNcQjzv+d/lOPu4emLnQxiYkGhzNadFGgAH2jqotUdethHKsM54b/iGqrRuD0VquRiJyPU2yuUNV3DnYeERGgL05nBGPqze/38/Rc579RoqeCm06Pjs4C1Q3p2Z4eSc5ltWkbK9iZt9flRCaS1Xe06MTArJ7DG3DctMeAK0TkGhHpKSJP4AyT80zgnK+KyKtVMlwI/Ae4A/hCRFoGXulVtvmLiJwW6MjQH/g3TsF5poEym0bqP7OXVk6ydkHXRJKa1LkTZ8S4aWhHAErUy73vfeNuGBPR6jNa9DHAKpxZPacDq0Vkj4jMFJFHROTC2m7KH4iqTgRuwpnYbd+Do2dUuSfTPvDa5zqce1ATcFos+17vVtkmFeeezI+BrG2AE1X127rmM6aqR2c5w/fH4ufuMdE9ue01p/QjM9a5Qv76D/mUlFW4nMhEqvo8ofY4zr2Vd3F+kR8JHI0znM0wQAFEpEBVU+tyYFV9CniqlnUnH+jrWva5Gbi5LhmMOZgZi9awpMBp3Zzezku7jBSXEwWX1+th/NEtuG9uLrm+WP7+4bf88Zy6PK1gjKM+l9T6Ah+q6rmq+idVvURVe+J0IjgJZ26cN4EtDZjTmLBx71TnmRQPyn2jo/PeTXW3n3UMzTxOy+bJudvw+20UaVN39Sk4hcDPhpBV1b2qOltVJ6jqpap61OHHMya8LF63jTm7nOdujs/w07djdPZOqy6pSTyXHJUMwNbyWJ77xObKMXVXn4LzKc4EbMY0On9876cHPf90evXH0KLb3WOOI16cIW7+9sV6a+WYOqtPwXkA5yHQyB4S15g6WrxuG9M2Ob9w+ySXM7J/Z5cThdYRKUmM6eyMarW6JJ6XZi1yOZGJNPUpOBfjjMz8sYj8ooHzGBO2bp30Lb7Aj8yDZ/Z2OY07Hjl/cGUr575P11orx9RJfQrOnThTSR8BfCgia0Tk2cA4ZEeLSOSPzW5MNd+u3MSngTEvslIrODOrm7uBXNK2eTPO7+JMJ7W+JJZnZtjoA+bQ1afgjMR52HIizkCdHYBrgaeB74ACEflORGrs3mxMJLrtnezKezePjO7vchp3PXz+8TQJDOr5wKx1lNvUBeYQ1bngqOoMVX1UVS9S1R5AM+AEnIc2X8EZobkf8KsGTWqMSz7/fh2z9/VMa+5jWJ9OLidyV6v0ZozrmQTAlrJYHnn/64PsYYzjsKeYVtVCVZ2jqv9U1atUtT+QBAw6/HjGuEtVuWnyAkAQlL+NHeh2pLDw8IVDSQo8l/PY3O3kFxa7nMhEgsMuODVR1TJVnR+MYxsTSs98Mp+Fec5tyeEtYXD3di4nCg+piU34dVYLAPb44rjpP7NdTmQiQVAKjjHRYG9xKX+a4QzllyA+nrvsBJcThZd7xw6mTZwzxtpry4tZsmGHy4lMuLOCY0wtfvva5+z2OWOm/XpAKp0y01xOFF5iY7w8NsoZp7cCD1e9WutMIsYAVnCMqdHiddt4bblzX6JtXBkPnD/U5UTh6fyhfTgxw+mlNi/Ha0PemAOygmNMNX6/n8tf+ZqKwI/HhF/2JC7WHi+rzYtXnFD5MOidn6yzSdpMrazgGFPNPZO/YmG+U2BOPsLP2ME2Du2BdG7VnN9lNQecDgQXPTfL5UQmXFnBMaaKhWu28vDcXQA081Twn2uHuZwoMjx43hB6JTsdCGZug39NX+ByIhOOrOAYE1BcWs6Yf39NqXoBeHRkB1qnN3M5VWTwej1MunpI5QgEt09fz/LNu1xOZcKNFRxjAi55djprS5xeab9sJ4wfcbTLiSJLz3aZ3HdiJgDF6mX0s19QVm7TUZufWMExBrj/3Tm8t94Z+bhdfBlvXDfC5USR6dZfHs/wTOf7uKwwlvOf/NjlRCacWMExjd6kr37gnjnO5Z+mUsH/rjmexIR4l1NFrkk3jKBdvHM/5/2Nfv7vzc9dTmTChRUc06h9tnQtl727ggo8eFCeP7sL/Y9s5XasiJaW1JQPf3U8iYGx1h6dl8eEqd+5nMqEAys4ptH6/Pt1nPnKQkoCnQTuGdKci09oXNNGB0ufDi2ZeGEv4vChCLfN3MK/PprndizjMis4plH6MHsFo15aQKHfed7m132acteYIS6nii6jBnbjmTM74sWPDw+/+2QLD7//jduxjIus4JhG58mP5nHOGz9SqE6xubFPU/55xXCXU0WnK4f159kz2hODHz/CHV/sZPy/P7GpqRspKzim0Sgrr+CSp6bx60+2Uo4HQbl9YDP+ZcUmqK4ePoBXRh9JQmD4m+d/KGHwX//HtpwCl5OZULOCYxqFOT9uoMfd/+ON1c6N7Hjx8eRpbXj44pNcTtY4XHxCH6Zd0Y/mXqf32rd7vHR7cAb/sM4EjYqoqtsZwlJWVpbOm2c3OSPdxl153PrWHN5dW44v8PdVq9hyJl85yCZTc8Hm3fmc+eTMykntAAal+XjqwkFkdWnjYjLTUEQkW1WzalxnBadmVnAi2+qtu7lz8lzeX1tGGd7AUmVsxxhevmY4SU3sORu3+P1+Hnjvax76egdFgftognJiC+X+s/sztGcHlxOaw2EFpx6s4ESewpJSXpy1mNezN5OdI5UtGoDOTcp58ty+nNa/i4sJTVVrt+3hspe+4Mtd3v2Wd08s57zeLbhxRH9apiW7lM7UV8QUHBG5Afg90Ar4HrhJVWudLF1ETgIeA3oBW4BHVPWZwznmPlZwwl9JWTlzlm3kg0XrmL0uj6V5Ujnw5j7dE8u585TOjDuxDx6P3bIMR7OWrOFPUxYzZ7cHkMrlXvx0TfRxfLskzujdluF9O5Ga2MS9oOaQRETBEZELgNeBG4AvAx+vBI5S1Q01bN8JWAq8CDwFDA18vFBVJ9fnmFVZwXFfcWk5m3bnsXlPAZtz9rJ6Rz6rdxawPreU1XkVbC2L2a8Vs0+8+Di+hXD9CV0573ibyyZSfLN8I3/7eDGfbCwj31/ThHfKEbEVdEr20D4ljg5pTenYPImuLdPonJlKZmqSXSoNA5FScOYCi1X12irLVgLvqOqdNWz/MDBGVbtWWfYC0EtVB9fnmFXVt+Dc+NIMtu8to+r3tep3uOq3WyuX1fxv4K9hcd2O+/NltR2jtv8GNe1X23lr2m//DD994Vco8ymlPqXMT+XHcr9QrlDs9/ystXIgzTwVDGju4cyjMrl2eH9SEhMOeV8TXsorfLw1ZykTszeQvaOcbeWxh7xvDH4SPH6aepV4D8QIxHoCL68Q5xHivBDrEUQEAUQIfBQ8gc894nxNlc/3rWss/nPdSBLiDv17v8+BCk5YzJsrInHAQOBv1VZNB46vZbfBgfVVfQxcLiKxOP836nrMw/bu8vw6/YC4o74/NuHx49bMU0HbpkqP5vH0a5PKaX06MKhLa7tkFiViY7yMO6kf407qB8DKLbuYMn81Czbm8MPOYtYXKrkV3hpbtxV42Ov3sLdBnivVWj5vHCp8Df9wblgUHCAD8ALbqy3fDpxayz4tgRk1bB8TOJ7U9ZgiMh4YD9C+fftDjL6/eC/ElfsCB6xy7Fq2r2m57Pf5z/+jSy1fHPxYtWVwziG1bFCn49aQp8b9BWIF4jxKnFeI9wrxXgIfPSTGechoGkdGUjxHJCfQMrUpXVum0atdCxvJuZHp2jqDW1pn7LfM5/OzbkcOP27ezartuWzNKya3uIzc4nLySnzkl/ko8yllPqXcz36vCnVeVVvhGvgp2PdC931ebbk5LOFScMKCqj4HPAfOJbX6HGPdA2MaNJMx5ue8Xg+dWzWnc6vmbkcxdRAuBWcX4AMyqy3PBLbVss+2WravCBxP6nFMY4wxQRIWF71VtQzIBqpPszgC+KqW3b6uZft5qlpez2MaY4wJknDqpXYB8BpO1+U5wHXA1Ti9ztaLyKsAqnpZYPt93aKfB54FhuB0i76oWrfoWo95kDw7gQNuE6YycFp4jYm95+jX2N4vRO577qCqLWpaES6X1FDViSLSHLgL5yHNpcAZVQpD+2rbrxWRM4DHgetxHvz87b5ic4jHPFCeGr9h4U5E5tXWJTFa2XuOfo3t/UJ0vuewaeGYhhGN/0kPxt5z9Gts7xei8z2HxT0cY4wx0c8KTvR5zu0ALrD3HP0a2/uFKHzPdknNGGNMSFgLxxhjTEhYwTHGGBMSVnCMMcaEhBWcKCeOaSKiInKu23mCRUTSReSfIrJMRIpFZKOIPB14DitqiMgNIrJWREpEJFtETnA7U7CIyJ0i8p2I5IvIThGZIiK93c4VSoHvgYrIv9zO0hCs4ES/W4GGH2c8/LQG2gC3A32AS4ETgTfdDNWQAiNnPAE8CAzAGaJpmojUb2jz8HcyzughxwOn4IyTOENE0t0MFSoichzO6PWL3c7SUKyXWhQTkUHAuzjzAm0HzlPVd9xNFTqBkSg+AFJVNd/tPIfrcCYUjAYikgTkAaNVdYrbeYJJRFKA+cA1wF+Apar6a3dTHT5r4UQpEUkG3gDGq+oOt/O4pBlQChS5HeRwVZmksPqkg0GdUDDMJOP8zspxO0gIPIfzh8Qst4M0JCs40esZ4CNVneZ2EDeISCpwH/C8qla4nacBHGiSwpahj+OKJ4CFOCPFRy0RuRbogjMGZFSxghNBROT+wA3EA71OFpFxQD/g925nPlyH+p6r7ZMETAE249zTMRFORB4DhgJjVdXndp5gEZHuOPfoLlbVcrfzNDS7hxNBRCQD5y/dA9mAc6P1MvbvLOANfP21qg4NTsKGd6jvWVWLAtsnAVNxJuA7XVX3BjliSAQuqRXhTL8xqcryJ4HeqnqSa+GCTEQeBy4EhqnqMrfzBJOIXAG8hDN55D5enBmu/UCiqpa6EK1BWMGJQiLSBkirtngJcAvwvqquCX2q4Avct5qGU2x+oaoFLkdqUIFOA4tUdXyVZSuAydHaaUBEngAuwCk2P7qdJ9gCl4LbVlv8ErASp+XzvUbwL+2wmQ/HNBxV3YxzOamSiABsjPJiMx2no8BoIFFEEgOr9wRmgI10jwGvici3/DShYGuc+3VRJ9B6G4fz75kjIvvuVe2NlpZrdaqaC+RWXSYihTj/h5e6k6rhWMEx0WIgcFzg8xXV1g0DPgtpmiA4nAkFI9QNgY8zqy2/B7g7tFFMQ7BLasYYY0LCWji1yMjI0I4dO7odwxhjIkp2dvYuVW1R0zorOLXo2LEj8+bNczuGMcZEFBGp9RKvPYcTBHnbV7odwRhj6iVv+0qCdavFCk4DWzLlj+x4ox9r5r7udhRjjKmTXesXsPWNQcx/5Rx8FQ3fsdMKTgPavWkJTVY9RoxUUP7V9Wxb8YXbkYwx5pAU5m5h63tnES9FpOdOZW0Q/mi2gtOAmrftQ3mf+wGIk1J2Tz3XLq8ZY8JeeWkRy1//BUk44/zmZJxHlyFXNfh5rOA0sJ6n3kpem2sAaEou6yb+gpLCxjC4rTEmEvn9fha/+kvSKpxRg3KaDKL/xa8G5VxWcIKg79h/sSd5OADN/Bv54dVf4KuIunH4jDFRYNHEq0kvdC7/53k60mvcVDweb1DOZQUnCDweD/3GvUdObC8A0koXsPD1C1xOZYwx+/t+2n2kbv8PAIU0p/PF04lvmhK081nBCZKYuAR6XPoRBdIKgPTcD1j834ifLcAYEyXWzn2dhGUPAFCqTTjil/8lOaNjUM9pBSeImqZk0vbcqRRrMgBJa59gxedPu5zKGNPYbVvxOeVfXY9H/PjUS8KJL3LEkccG/bxWcIIsvU0vUka+SbnGIgIy/1Y2LPyv27GMMY1UztZl7PlwLLHiTKtT3ud+Og4cG5JzW8EJgTa9RiKDJuBXIUYqKJp1OdtXzXE7ljGmkSnM3cqGt0+jieQDkNvmV/Q89daQnd8KToh0HXotJT3+CEC8FLNrymhytkb15IXGmDBSVpzPitdOpZluBWBPyun0G/tESDNYwQmhXqf/mbzWzsNUTSWPjW+PpDB3i8upjDHRzldRxpKXTyPV5zyInpOQRf9xk/B4QlsCrOCEWN9zn2JP6hkAJOs2Vrx2KmXF+S6nMsZEK7/fz8JXRpNemg1Abkw3+lwxHW9MXMizWMEJMWBTzsEAAB35SURBVI/HQ/9LJ7GnidMjJNW3iiUvjwzKQHnGGLPorStJL5gBQL60ofu4mcQmJLmSxQqOC7wxsfS9fBq5Md0BSC+dz8JXzsbv97uczBgTTZa8fzupO94EoJB0Ol74CU1TMl3LYwXHJbEJSXQfN4N8aQNAesFMFr5+kRUdY0yD+OGTR0lcMwGAEk0kc/SHpGR2cTVTRBccETlRRP4nIptFREXkimrrRUTuFpEtIlIsIp+JSC+X4v5M05RMOl00g0KaA5C25z0WT7rO5VTGmEi3YvbzxC39EyJQrvEkj5xIi44D3Y4V2QUHSAKWAr8DimtYfztwK/AbYBCwA/hERJJDlvAgmh3RmVZjP6ZInfGLUra+bEPgGGPqbc3cN/DM+y3ewCgCcSe8QNteI92OBUR4wVHVqar6B1V9B9jvWpSICHAT8JCqTlbVpcDlQDJwcejT1q55u75k/PJ/lGgiAMnrnuD7afe7nMoYE2k2LHyfiq+uxSs+/OqBQU/QMSt8Bg6O6IJzEJ2AlsD0fQtUtRj4Aji+ph1EZLyIzBOReTt37gxNyoDMzoNpdtrblGkCAAnL7mPZrH+ENIMxJnJt/XEmxbPGESvlqEJ53wfpMnS827H2E80Fp2Xg4/Zqy7dXWbcfVX1OVbNUNatFixZBDVeTNkeNIOHkV6jQWDyixCy8nVVfvRzyHMaYyLJjzdfkfTSWOCkBoKj7H+kx/BaXU/1cNBeciNRhwDl4jnsan3rxih+dewNrv33D7VjGmDC1c/18dr1/JvFSBEB+h9/Q+4y/uJyqZtFccLYFPlbvdJ5ZZV1Y6jz4MnwDHq0c7LNizjWsnfe227GMMWFm98YlbH/3dJpIAQA5ra6k3zl/dzlV7aK54KzFKSwj9i0QkQTgBOArt0Idqu4n/5ryvg/9VHRmX8m67HfcjmWMCRN7Ni1l6+QRJEoOADktLmDA+c+4nOrAIrrgiEiSiPQXkf4476V94Ov2qqrABOD/RGSMiPQGXgb2AhFxjarH8Jsp631foOiUU/bF5axf8J7bsYwxLtuz+Qe2vHMqiewBILf5aPpf9ApO59zwFdEFB8gCFgReTYB7Ap/fG1j/CPA48CQwD2gFjFTVgtBHrZ+eI26n9Ki7UYVYKaf0s8vYsGiK27GMMS7J2fIjWyYNryw2Oeln0++St0I+8nN9iNMQMNVlZWXpvHnz3I5R6ftp99Nk2b2IQJnG0/TUt2jXZ5TbsYwxIZS7dRmbJg4jkd0A7Ek7iwEuTDNwICKSrapZNa0Ln5TmgHqdfhdF3f4AQJyUUjTjIjYsfN/lVMaYUMnZ8uP+xSb1zLArNgcTOUkNvUfdzd7OtwMQJyWUzLqEddmTXE5ljAm23ZuWsvntUyqLze6UUQy47J2IKjZgBSfi9Dnrfgq7/iFwT6eM8i8uZ83c192OZYwJkp3rstk2afh+LZujL58cccUGQlhwRGSEiDwiIt8ERm8uE5E8EVkpIpNE5HqRwFj95oB6j7qbkl73VnaZ9n91Lavm/NvtWMaYBrZ91Rx2vjeSpoGuz7npZ0dky2afoKYWkaYicoeIrAU+Am4DjgFScUZurgCOBMbi9CRbKyKTRWRwMHNFg6NG3kF5v4fxqwev+ODbG1nx+VNuxzLGNJCtyz4lZ8qoyoc6c4+4iH6XTozYYgNBLDgichWwEngQZ+qAe3AewkxV1aaq2lZVmwMxwFHAVcBk4HTgSxGZKCLtg5UvGvQ45SZ8AydUDoPjnX8zP84I36eMjTGHZtOSD8mfNrpyuJq81lcz4OJXIrrYQHBbOC8Ac4FjVfUoVb1XVWeqan7VjdSxTFVfVtWLcAbWvAkYClwRxHxRoduJ18GxT1GhMXhEiV9yJ0s/+JPbsYwx9bR23tsUzbigciDO/A6/of/5T7ucqmEEs+BkqeoYVf2uLjupar6q/hPoDNgAYoegy/FXEjPkBco1FhFIXPUwC9++zqarNibCrPjiOSpmX0GslKEKBZ3/L6zHRquroBUcVZ1/mPuXqOqyhsoT7TodczEJp0ykVJsAkLLlRRa+fgF+v8/lZMaYQ7F02v14s3/jdARSoaTX/fQ96z63YzWoUPZSezBU52qs2vc7k7SzplKszQBI2/M+C/49koqyEpeTGWMOZOE7vyFx+b14RKnQGHTQPzhq5O1ux2pwobwDdYeIWDeqIMvsMoTM82axF2cCufTC2Sx+4UTKivMPsqcxJtT8fh/zX7uAlE3PAlCmCcSd9Dpdhv7K5WTBEcqC8ypwnYi8ISIxNW0gIkNEJOynDgh3zdv2oeOlX5HvaQdAWtlCvn/hOApzNruczBizT0VZCQv/PZK03c4I8MXajGZn/I8OR49xOVnwhKzgqOoVOCM3Xwi8H5ibBgAR6Soi7wJfAMeGKlM0S87oQLcrvyE3pjsAqb5VrHnlWHZtWOhyMmNM8d49LHp+CGmFswHYSwsyz/2UVt1PdjdYkIW0U7eq3grchfOszXQR6SYiTwJLgdFANjAylJmiWZPkFvS+5mv2NHFqeBI72Dl5GJuWfuRyMmMar9xtK1j+7yzSy5cAkOfpQIdL5tC8XV+XkwVfyJ8iUtUHgd/gPGfzI3AdsAY4T1WPUdWZoc4UzWITkhhw7WfkNHea6QlSSPEnY1nxxbMuJzOm8dm6/DM2vzmEFN0EQG5cH3pcPZdmLTq6GyxEQlpwxHEZcMu+RTjTQA9V1cmhzNKYeDxejh73FgWdbq6cPdSb/VuW/O9Ot6MZ02is+eZVCqaeRVPJAyCn2Qj6XvsVCYnpLicLnVB2iz4HWAK8hDPz5kPArTgjC8wQkSNClaWx6nv2w/gG/oMKjcUjStKavzP/tQvtWR1jguz7qXejX19LrJQCkN92PP2vmII3Nt7lZKEVyhbOZKAHTm+1bqr6B1V9HBiHM5baHBHpGMI8jVK3E39FkxGTKdFEANJ2v8vCZ4+nuGCXy8mMiT4+XwXzX7+EpisexCOKT72U9HmYfuf+K+LHRauPUL7jT4CjVfVK1cAFTEBV3wDOAVrjDNrZK4SZGqW2vX9Bi7GzKCATgLTSBax8caD1YDOmARUX7GLhcyeQtsuZJLFUmxJz0pv0HH6zy8ncE8pu0aep6uJa1k0FTgOSgM9Dlakxy2jfny5XziMnrg8AybqVXZNPthlEjWkAuzY4f8Sll2YDsJcjyBgzi45Hj3Y5mbvCpk2nql8CJwPlLkdpNJqmZNJv/DfkpJ8DQLwU4ftiHEs//IvLyYyJXGu/e4Ndk08mWbcCTk+0LlfNI6PDAJeTuS9sCg6Aqi7E6S5tQsQbE8vRl02kqPuf8akXj/hJXPlXsl8eg6+izO14xkQMv9/P0v/djv/LK4mXYgBymo+l7/hvaNKspcvpwkMwJ2BrUp/9VHX14R7D1F2v0+8ibtiblZ0J0nM/YPHTR5O/Y/VB9jTGlJXsZcGLp5O4ZkJl54Dinvdw9Lg38cbEuh0vbASzhbNWRH4nInXu9yci/UTkfZwpqU2ItO8/mszzvyRf2gKQ6lvBpv8cw/oF77mczJjwtXvjYn54tj/pe2cBzphoccPf4ajT7Dm36oJZcD4GHgO2isjTIjLsQC0WETlSRK4Xka+B+UA/YFYQ85kapLfpRc/xC9mTeBIATaSAis8uYtF7t9qEbsZUs2rOv9n5zgmk6AYA8rxH0ubir2nfd5TLycKTqGrwDi4yCHgAGB5Y5MMZzmYrkAMkAM2B7kAGzsgDO4AJwOOqWnqY578bqH4HfLuqHvSCalZWls6bN+9wTh/R/H4/33/4Z5qs+jtecR4M3dN0ML0uea9RPRltTE38vgoWv301KdvfrFyWk3YmfS/6DzFxjftOgIhkq2pWjeuCWXCqBOgKXA2citNy8VbbZCfOSNGTgcmq2iA91QIF50Kc3m/7+FR158H2bewFZ5+NS6aSP+PyyuE4CqQlmaPeIrPL8S4nM8YdBbvWsWriaFLLfwCgXGPx972XHsNvdTlZeDhQwalxXpqGpqorgTsCYZoCbXBaNsXADtVA/8HgqFDVbUE8flRr1+cM9raZz4o3zyKt/AeSdRv5U05lZ7ffc9Tpf2mUT0ubxmvtvEkUz76eVHEmNCwgk8yzJtofYIcolGOpfSMix6lqkaquVNVvVHVRkIsNwJEiskVE1orIWyJy5AEyjheReSIyb+fOgzaCGo2k9Hb0+9V35BxxEaoQIxUkrvwrC54/maK87W7HMybofBVlzH/jSvyzL6VJoNjsbjqErtcssmJTByG5pAYgIqU4LaqJwB2qgbtswT3n6UAysAw4Amcunh5AL1XdfaB97ZJazdZ++wbFc35DEykAoJB0mg17gfb9znQ5mTHBsXvjYjb+93xSfGsAnPHQut7CUWfcZy38Ghzokloov1s9gHdx7qksE5EHRCQpmCdU1Wmq+raqLlbVGcCZOO/58mCeN5p1OuZi2o2bT06cM1lUInso//RcFk660UadNlFn+aePseudIZXFpkBakjTqY3qf+YAVm3oI5Vhqa1X1POAEnGkK7gRWisjVIiIhyrAX+B7oGorzRavkjA70v24u+e1vxKcePOInZfPzLHqqP7s31jhcnjERpSh/J9kvjCRu8R3EBaYU2J1yOj3GL6VltxNdThe53Jjxc46qHgtcCpQCzwELROSUYJ9bRBJwWlrBvm8U9TweL/3GPE7CiPcpJAOA1Irl7H5nCEs/vNue2TERa+13E1nzYh/S934GOKM8l/afQNaV7xPXpJm74SKca23CwLQE3YE/Ah2BT0TkfRHp1lDnEJG/ichJItJJRI4F3gESgVca6hyNXdvep9Hl2qXsaTYSgFgpJXHlgyx85jgbFsdElNKiPLJfHgNzxpHIHgByY3qQecE39Dj5BpfTRQdXL0KqaqmqPoRzietZ4AygIa/JtAXeBJbj3D8qBY5T1fUNeI5GLyExnYFXfYDvmGcpVucvwLSyhWz5z0CWfTrB5XTGHNyGhf9l5XM9Sc/9AIAKjWFvp9/R74YFpLXu4XK66BGyXmo/O7FIa6AX0Dvw6oXzUGicqlZ/MDTkrJda/RTmbGbZpEtIL/qqctmehGPocs5LpGTarTMTXsqK81k66VpSd7/HvjvJuZ4jaXPWqxzR6Rh3w0Uo10caCIS4kZ8KSy8gdd+qwEcfsAJYpKoXhyTUAVjBOTzLZj4Oi++uHKa9TBMo73azPSxqwsbquW9Q9PXvScJ55s6nXva2u4Y+ox+zEZ4PQ7gUnKp3kffgXDpbVOXj94c7dlpDsoJz+PJ3rGble1eQXjy3clmutxttznzR/no0rtm7ZyPLJ19FeuFPkwvneTqS+YsXadXNpuM6XOFScO4gUGBUdXNITnoYrOA0nBVfPEt59l2V47H51EtB68voc86ERj/QoQkdv9/P8k/+ivzwKPFSBECFxlLccTy9znoYb0ycywmjQ1gUnEhjBadhFRfs5IfJ15KWM7XyWvlejqDpcQ/S+bjL3A1not62lV+x9ePxpFasqFyWE9efjme/SHqb3i4miz7hMtKAacSaJLdg4BX/JWbYJArEmR0iiR14vrmG7KePtwdGTVAU5W0n+5XzKPzglMpiU6zJlPZ9lP7XfWPFJsSshVMLa+EET0VZMd9P+T+abHiRWClzlmkMe1teSK/RE+zhOnPY/L4Kfvz4PjzL/0GCFAKgCrlpo+g++mkSUw86JZapJ7ukVg9WcIIvb/tKVv3vOtILZ1cuKyINb5876Dbsd9abzdTL+vmTyf3ydpr5N1Yuy/N2IfPUf9Cq56kuJmscrODUgxWc0Fm/4D1yv7iVZrqpclmepwMpg++n06ALXExmIsn21XPZ+MmtNC/5tnJZkabg6XMH3U+52f6ACRErOPVgBSe0fBXl/DDtbmJXPVnZgwggJ64vrYb/jVbdT3YvnAlrudtWsHrqLaTmfYJHnN9nFRpDfuaF9Dr7MRISUw9yBNOQrODUgxUcdxQX7OTHKbeRvP0dYsSZaVwVcpJPptPpj5PeppfLCU24KMrbyvIPfk/SjneJkYrK5TmJQ+l4xj/t/4pLrODUgxUcd+VtX8mqD28iNW9G5V+tPvWQlzKcjiMfonnbPi4nNG4pyt/Bsml/InHLm8RJSeVypzX8KK26D3MxnbGCUw9WcMLD9tVfs2n6LaSXZlcu86uH3GbD6DDir2S07+9iOhNKhTmbWf7Rn2m67Z3KIZPAGfss9fj76JR1novpzD5WcOrBCk542bjkQ3bOvpu0skWVy/zqITf5JNqf+iAtOg50MZ0Jpr2717Pyoz+SuON9YuWn0a8KpDUJA+6ky9BrrUNAGLGCUw9WcMLTpqUfs2P2n0krXVC5TBVyErLIOPY22vUfbb98osSOtdls+Ox+UnI/3u8eTZ6nPYkDbqPzkGvxeFwfWN5UYwWnHqzghLfNP3zCts//vN+lNnAGYUzodT1dT7rRxsaKQH6/n/Xz32HPd4+RVjKfqpPP53o6k5x1O0ced7n9URHGrODUgxWcyLBtxWw2f3E/KQVf4BVf5fIi0qhodyGdh91GUno7FxOaQ1FWspdVnz1B+fJ/7/c8FkBubC9Sj7mDDgPPs0ITAazg1IMVnMiSv2M1q2bcS9Pt7+/3HI9PveQlHkfzgTfQfsBY+4UVZrav/oaNcyaQuPvjyiFoIPDv1mwYbU+8k8yuJ7iY0NSVFZx6sIITmUqL8lgx8xFY/QpJ7NhvXQGZ0OE8jjzpFpLS27qU0JQV57Nq9lOULn+dVN+K/dYVazKlrcbQ5dS7SM7o4FJCczis4NSDFZzI5vf7WZ89iT0LnialcO5+l9t86iE/oR9Nu11Ip8FXEd80xcWkjYPP52P9gv+ye9HLNMv/fL/nZwDyYrrSpMcVdD7x1zZHUoSzglMPVnCiR8Gu9az5/O94Nr5DErv2W1eucRQkHUdKr0vpdMzF1tGgAfn9fjb/OJPt2f8mYfenJErufutLNJHijNNoN/RmWnQ61qWUpqFZwakHKzjRp7LVs/hlkvLn/Oyv7FJtSmHyMSR3HU37rItISExzKWnk8vl8bFg8jV1L3yZh90yS2Lnfer8KBfG9SehxGV2GjrfWTBSyglMPVnCiW3lpIWu+fom9y94kpXj+fpfcwBn8sSC+N3Htf0G7QeNIyezqUtLwV1ywi/Xz3qJg1Qc03fsdTaXgZ9vkeTsT23E0HYdcR2K63ZuJZlZw6sEKTuNRlLedtV89T+m6KSSXLNnvIcN9CqQl5SkDSe40grb9x9A0pfFO4FWSu5EtS6eQv3YWkrOAJN/GyvHuqirwtkNbj6L94F+R1toG0mwsrODUgxWcxqm0KI/1896kYOX7NM3/Zr+uuvv4VSjwtsOfNoimbQeT2WMkKZndorbLdcH2H9jx/RSKNs3Gm7uQJv4dNW7nUy8FCb2J73Aa7QZeSnJmjxAnNeHACk49WMExvopyNi+dyu5l/4Od35BcsRqv+GvctliTKU7ohrd5f5LbH09Gp8Ektzgy4opQcXExOzZ8T86qjynf8gVNCxfRlD01butTDwXeDvjTjiblyOG0P/o84ppYj7/GrtEXHBG5Afg90Ar4HrhJVWcfaB8rOKa6ksIcNi+eQt7qj/HsmUtyLZeS9inVJhTHtMGf2ImYtJ4ktuxLs5Y9SW3Vk7iEpBAm/0lF4TbKclZTsGsdRfk72Zu3g6L8nZQU7MZbvI5U3UCiJ7/Gfcs0nlxPJ0gfSEqnU2jX9wwSmzUP8Tsw4a5RFxwRuQB4HbgB+DLw8UrgKFXdUNt+VnDMwZQU5rB9+Sxy135Oxa4FxBcvJ5Gcg+6nCiUkU+rNwB+XgSehOZLQHG+TFsQkHkFc0hHEJx1BfGIaMQkpxMQnExPfjJi4BLxeLx6PB7+vnIqyIipK9+IrK8JXVkhFWSFl5RWUlvkoKS2nZO8eKgo2IHk/ELN3OQmlq4nXvEN+fxUay974HmjGYJp1HknrHqfQNNGdQmkiR2MvOHOBxap6bZVlK4F3VPXO2vazgmPqo2DXOrav+Iyi7Ysp3/Mj3qK1NKnYTFyVYfXry6ceFA8efAdsWdVXmbc5FclHEZeZRWqnk2ne5RQ8MfENfh4T3Q5UcGJCHSaURCQOGAj8rdqq6cDxNWw/HhgP0L59+6DnM9EnOaMjyRlX7LfM7/eTv2MFORvnU7x7NWW56/Dv3YindBve8j3E6l7iKNpvZOSaOPePar6HdDB7yaAothMVSd3xpnalSVpHklJbktK8NanNW+GNT0Iksu43mcgT1QUHyAC8wPZqy7cDp1bfWFWfA54Dp4UT9HSmUfB4PKS27EFqy9p7bVWUl1GUu4XivM2U5G2htHA35SX5aNletKIQrSiCikLUX4GfGPDEgTcBiUnAE9MEiUlAvAnExsYQF+MhLtZDXNNUmqS0oWnLAXji7Wa+cV+0FxxjIkJMbBzNWnSkWYuObkcxJmiivQ29C/ABmdWWZwLbQh/HGGMar6guOKpaBmQDI6qtGgF8FfpExhjTeDWGXmoXAK/hdIeeA1wHXA30UtX1B9hvJ1Dr+jCWAdWGRI5+9p6jX2N7vxC577mDqraoaUXU38NR1Yki0hy4C+fBz6XAGQcqNoH9avyGhTsRmVdbl8RoZe85+jW29wvR+Z6jvuAAqOpTwFNu5zDGmMYsqu/hGGOMCR9WcKLPc24HcIG95+jX2N4vROF7jvpOA8YYY8KDtXCMMcaEhBUcY4wxIWEFxxhjTEhYwYly4pgmIioi57qdJ1hEJF1E/ikiy0SkWEQ2isjTgWewooaI3CAia0WkRESyReQEtzMFi4jcKSLfiUi+iOwUkSki0tvtXKEU+B6oiPzL7SwNwQpO9LuV+o5pH1laA22A24E+wKXAicCbboZqSIFRM54AHgQG4AzPNE1EonUujZNxnp87HjgFqABmiEi6m6FCRUSOw5kuZbHbWRqK9VKLYiIyCHgXZ06g7cB5qvqOu6lCR0TOAD4AUlW15nmTI0h9JxOMFiKSBOQBo1V1itt5gklEUoD5wDXAX4Clqvprd1MdPmvhRCkRSQbeAMar6g6387ikGVAKFLkd5HBVmUxwerVVNU4mGKWScX5nHXwe78j3HM4fErPcDtKQrOBEr2eAj1R1mttB3CAiqcB9wPOqWuF2ngZwoMkEW4Y+jiueABYCX7sdJJhE5FqgC874j1HFCk4EEZH7AzcQD/Q6WUTGAf2A37ud+XAd6nuutk8SMAXYjHNPx0Q4EXkMGAqMVVWf23mCRUS649yju1hVy93O09DsHk4EEZEMnL90D2QDzo3Wy9i/s4A38PXXqjo0OAkb3qG+Z1UtCmyfBEwFBDhdVfcGOWJIBC6pFQEXqeqkKsufBHqr6kmuhQsyEXkcuBAYpqrL3M4TTCJyBfASzsSR+3gBxfn5TVTVUheiNQgrOFFIRNoAadUWLwFuAd5X1TWhTxV8gftW03CKzS9UtcDlSA0q0GlgkaqOr7JsBTA5WjsNiMgTwAU4xeZHt/MEW+BScNtqi18CVuK0fL7XCP6l3SimJ2hsVHUzzuWkSiICsDHKi810nI4Co4FEEUkMrN4TmP010j0GvCYi3/LTZIKtce7XRZ1A620czr9njojsu1e1N1partWpai6QW3WZiBTi/B9e6k6qhmMFx0SLgcBxgc9XVFs3DPgspGmCoL6TCUawGwIfZ1Zbfg9wd2ijmIZgl9SMMcaEhPVSM8YYExJWcIwxxoSEFRxjjDEhYQXHGGNMSFjBMcYYExJWcIwxxoSEFRxjjDEhYQXHGGNMSFjBMcYYExJWcIwxxoSEFRxjwpyITA/M+zO22nIRkZcD6x5yK58xh8rGUjMmzIlIP5z57ZcDffZNQCYif8eZcuI5Vf2VixGNOSTWwjEmzKnqIuA1oCfOcP2IyB9wis3bwPXupTPm0FkLx5gIICLtcKZd2Ab8Hfgn8DHwyyiZ68c0AlZwjIkQIvJX4I7Al18BI/ZNrW1MJLBLasZEjp1VPr/aio2JNFZwjIkAInIx8DecS2oAv3MxjjH1YgXHmDAnImcAL+NMKd0Xp7faNSLS3c1cxtSVFRxjwpiIDAXeATYBp6nqTuAuIAZ42M1sxtSVdRowJkyJSH/gM6AYGKqqq6us+w7IAk5U1dnuJDSmbqyFY0wYEpEuwEeA4rRsVlfb5M7Ax0dDGsyYw2AtHGOMMSFhLRxjjDEhYQXHGGNMSFjBMcYYExJWcIwxxoSEFRxjjDEhYQXHGGNMSFjBMcYYExJWcIwxxoSEFRxjjDEh8f9VZL+WrcxFvgAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "\u003cFigure size 432x288 with 2 Axes\u003e"
            ]
          },
          "metadata": {
            "needs_background": "light",
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "optimized_potential = potential_history[-1]\n",
        "optimized_density, optimized_total_eigen_energies, _ = (\n",
        "    scf.solve_noninteracting_system(\n",
        "        optimized_potential,\n",
        "        num_electrons=1,\n",
        "        grids=grids))\n",
        "\n",
        "print(f'total energy: {optimized_total_eigen_energies}')\n",
        "\n",
        "_, axs = plt.subplots(nrows=2)\n",
        "axs[0].plot(grids, optimized_density - qho_density, c=COLORS[0])\n",
        "axs[0].set_ylabel(r'$\\Delta n(x)$')\n",
        "axs[1].plot(grids, optimized_potential - qho_potential, c=COLORS[1])\n",
        "axs[1].set_ylabel(r'$\\Delta v(x)$')\n",
        "axs[1].set_xlabel(r'$x$')\n",
        "plt.show()\n",
        "\n",
        "_, axs = plt.subplots(nrows=2)\n",
        "show_density_potential(\n",
        "    grids, qho_density, qho_potential, grey=True, do_show=False, axs=axs)\n",
        "show_density_potential(\n",
        "    grids, optimized_density, optimized_potential, axs=axs)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "5Prh0oEH63-u"
      },
      "outputs": [],
      "source": [
        ""
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [
        "JndnmDMp66FL",
        "29bi9k9toyk3"
      ],
      "name": "recover_potential_from_density_and_energy.ipynb",
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
